﻿/* Der Autor des nachfolgenden Codes ist 'dN!3L'
 * Der Forumspost zum Code ist unter folgender URL zu finden:
 * http://www.mycsharp.de/wbb2/thread.php?threadid=52731&hilight=DynamicAccessor
 */

/// <summary>
/// Ermöglicht den schnellen Zugriff (ohne Reflection) auf Felder/Properties
/// </summary>
public interface IDynamicFieldAccessor
{
	/// <summary>
	/// Ersetzt das Property/Feld, das durch diese Instanz repräsentiert wird, am übergeben Zielobjekt durch den übergeben Wert
	/// </summary>
	/// <param name="target">das Zielobjekt, dem das Feld/Property angehört</param>
	/// <param name="value">der Wert, der gesetzt werden soll</param>
	void Set(object target, object value);


	/// <summary>
	/// Liest das Property/Feld, das durch diese Instanz repräsentiert wird, vom übergeben Zielobjekt aus
	/// </summary>
	/// <param name="target">das Zielobjekt, dem das Feld/Property angehört</param>
	/// <returns>den Wert des Properties/Feldes, das durch diese Instantz repräsentiert wird</returns>
	object Get(object target);
}